From 24fbef10c201887696d1f37628dde8fd0cbf7086 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild2.aw" Date: Thu, 1 Mar 2007 15:02:09 -0700 Subject: [PATCH] [IA64] Bug fixes to assign_domain_mmio_page() - phys_addr also needs to be rounded down to a page start - return the original mpaddr, not the modified one Signed-off-by: Alex Williamson --- xen/arch/ia64/xen/mm.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/xen/arch/ia64/xen/mm.c b/xen/arch/ia64/xen/mm.c index 9ce2c34949..4ce0094e34 100644 --- a/xen/arch/ia64/xen/mm.c +++ b/xen/arch/ia64/xen/mm.c @@ -1048,7 +1048,9 @@ assign_domain_mmio_page(struct domain *d, unsigned long mpaddr, unsigned long phys_addr, unsigned long size, unsigned long flags) { + unsigned long addr = mpaddr & PAGE_MASK; unsigned long end = PAGE_ALIGN(mpaddr + size); + if (size == 0) { gdprintk(XENLOG_INFO, "%s: domain %p mpaddr 0x%lx size = 0x%lx\n", __func__, d, mpaddr, size); @@ -1061,9 +1063,9 @@ assign_domain_mmio_page(struct domain *d, unsigned long mpaddr, return -EINVAL; } - for (mpaddr &= PAGE_MASK; mpaddr < end; - mpaddr += PAGE_SIZE, phys_addr += PAGE_SIZE) { - __assign_domain_page(d, mpaddr, phys_addr, flags); + for (phys_addr &= PAGE_MASK; addr < end; + addr += PAGE_SIZE, phys_addr += PAGE_SIZE) { + __assign_domain_page(d, addr, phys_addr, flags); } return mpaddr; -- 2.30.2